热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

脉络|超文本_把握前端开发历史脉络

篇首语:本文由编程笔记#小编为大家整理,主要介绍了把握前端开发历史脉络相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了把握前端开发历史脉络相关的知识,希望对你有一定的参考价值。




​​​​​


作者:
​​ 商见曜​​



把握前端开发历史脉络


把握前端开发历史脉络_Javascript

​​#光源计划#​​



前言

当你接触一个新事物的时候,你应该先去了解它的历史。



前端发展的起源、架构、变迁



前端的起源

一切的开始源于 Timothy John Berners-Lee 在 1989 年发表的一份声明:他在短短十几页的声明中,提出了一个“万维网”的构想 -- 世界上的电脑互相连接起来。这是 Web 的起源。而在他发表这份声明前,他已经做了一些相关工作了:创建了一个以超文本系统为基础的项目,方便研究人员分享及更新讯息的原型系统,叫 ENQUIRE。1989 年 3 月,他写下了他的初步构想,并在 1990 年重新开发配置系统。他使用与 ENQUIRE 系统相似的概念来创建万维网,为此他设计并构建了第一个网页浏览器,他的软件还可以作为编辑器(称为 WorldWideWeb,能在 NeXTSTEP 操作系统上运行),他还设计了世界上第一个网页服务器,CERN httpd(超文本传输协议守护进程的缩写)。



架构

从他的构想与实践中,我们发现一开始网页的架构是这样的:html 是内容,http 是传输工具,而 URL 是内容的可访问地址,css 和 Javascript 一开始是不存在的。而 Web 的架构则很清晰明了:网页与服务器通过计算机网络连接。

把握前端开发历史脉络_chromium_02



变迁

前端的变迁看起来是非常有趣的。

自从 1989 年 Web 出现之后,其实并没有独立的前端开发岗位,大多数都是后端开发兼任或者设计兼任的。无论 css 和 Javascript 两者的出现都没有改变这一现状,网页依然是傻傻的,每次改变都需要同步到后端,然后后端返回一个完整的网页我们才能更新网页。

直到一个技术 Ajax 的诞生。虽然在 2000 年的候 IE 就自己实现了 XMLHttpRequest 这个技术,但是它被正确使用和被大众接受还是在谷歌推出了 Gmail 和 Gmap 这两款产品的时候。Ajax 的出现标志着前端获得了更多的自主权,前端可以做更多的工作,“网页应用”的概念第一次被提出。这时期一些经典的库出现了比如 jQuery。

最近的一次变迁这是由苹果公司造成的 -- 他们发布了 iphone 手机,极大的拔高了用户体验的概念,这时候前端的工作职责也更多了,开始出现独立的“前端开发岗位”。而随着基于 V8 引擎的 nodejs 出现,前端工具更加丰富,以前后端的一些模块化,工程化等概念也开始引入前端。这时候一些工具和框架开始大行其道,比如 webpack,react,vue 等。



前端的工作领域



浏览器

浏览器作为最开始的网页浏览工具,也是 Javascript 的诞生环境,也是我们日常使用的工具,我们大多数是通过浏览器去访问我们想要去的地方的。而现在的浏览器早已不是曾经的“百花齐放”逼得人搞兼容性搞到癫狂的时代了,现在的浏览器从内核上来说只有三款了(国内的浏览器我真不了解):Chromium--Chrome、Opera、edge,Gecko--Firefox,Webkit-Safari。而 chromium 占比已经达到了 69%(2021 年),实际性的垄断地位。(而 Safari 在苹果生态上很难撼动)



服务器

前端在服务器开发?这句话看起来就很荒谬,但是随着 nodejs 的出现,这句话就不再荒谬。随着 nodejs 生态的发展,npm 包管理工具已经是世界上最大的包管理工具了,超过 130 万个包使用 npm 管理。经典的 nodejs 服务器框架有 express、koa 等,它们的出现使得只学习 Javascript 就可以胜任前后端的开发工作,使得“全栈开发”这个概念得到进一步的实践。

而在 nodejs 出现十年的时候,它的作者 Ryan Dahl 回忆自己在设计 node 的时候有“十大失误”,并提出 node 的孪生弟弟 deno,全新的 Rust 语言开发,弥补遗憾,值得关注。



终端、跨端

终端,一般来说就是 Teminal cli 工具,比如 vue cli,create-react-app 等,这也是前端开发可以选择的方向。而跨端的话,对于桌面端来说,现在有 electron、NW.js 这两个比较热门的框架来作为开发工具,而对于移动端来说,还有 react-native、flutter 等。



前端的业务场景



TO B(business)

b 端一般是面向企业、机构、银行、政府等,这类业务场景一般是构建平台,搭建网站,提供服务。用户上这个平台的时候可以购买、使用、监控、管理他们的服务,这类业务会有很多业务逻辑要写,可信度的要求也比较高,这类业务很赚钱。



TO C(customer)

c 端一般都是面向普通人,或者说专注于人的基本生活习惯,吃喝玩乐、兴趣爱好等,它就比较偏向潮流、时尚,极大的提高用户体验的地位,这类的业务场景百花齐放,但是核心是用户体验,而且搞这类的企业一般比较年轻(可能),会更加以人为本。



TO D(developer)

d 端就是面向我们程序员自己,自产自销。一般都是为了解决开发痛点,然后自己提出解决方案,为社区开源,获取名利来持续运营,典型的例子:尤雨溪。这类的要求比较高,但是基础工资和后续在业内的发展上限是极高的。



前端的语言、框架



wasm

从 js 诞生之后到现在,浏览器中能运行的语言就只有 HTML、Css、Js 三门语言,已经持续 20 多年了。但是在 2019 年的年底,wasm 规范通过了社区认证,主流的浏览器都已经关于 wasm 达成了一些共识。它脱胎于 asm.js,更加的开放、安全、快速。从此以后,c++/c 等其他语言的模块就能通过编译为 wasm 模块被浏览器运行,也许有一天,我们可以在浏览器上运行大型游戏也说不定?(网速咋办啊)



框架

我们学习一门框架,往往是出现了一些问题然后我们去找解决方案,不经意了解这门框架 / 工具可以正好可以解决这个问题。但我建议,当我们去学习一门优秀的框架的时候,我们可以多去了解一些它的作者,了解一下作者对这个工具的设计初衷,了解这个人的技术愿景,因为这种人往往都是颠覆、或者说极大的改变了行业的人,是行业的引领者。以下是一些优秀的框架和他们的作者。

把握前端开发历史脉络_Javascript_03



前端的学习路径

那很粗浅的了解了一下前端发展的历史,我们该怎么学习前端呢?这里我推荐一个网站 ​​roadmap​​。以下是一张截图,图里紫色的标是必须掌握的,绿色的标是推荐学习的,灰色的标是什么时候用到再学就可以的,而没有标的就...

把握前端开发历史脉络_node.js_04

从这张图里我们可以看一些基本的知识。学习前端要学习计算机网络知识,这是前后端联调的基础;需要学习 html+css+js 经典套餐,这是二十年来的必经之路;学习版本管理 git,因为协作是我们工作顺利的保障;学习一个包管理工具 npm/yarn,(不适用 npm 的应该不算应用吧 hh);学习一种构建工具 webpack 老牌强队了,esbuild 是超快的速度,而 vite 是新兴的产物;学习一门前端框架,react 和 vue 都是一时之选。.. 就像那句话,保持学习。



总结

今天向大家介绍了一下前端的起源,它的工作领域,主要的业务场景,发展,和学习路径,希望大家看完之后有所收获,对大家理解前端开发这个岗位有所帮助。



REFERENCES


  1. ​​wiki-蒂姆·伯纳斯-李​​
  2. ​​www三十年​​



Recommended reading


  1. ​​诞生文献-Information Management: A Proposal​​
  2. ​​深入理解现代浏览器​​
  3. ​​http概览​​



more Information

大家了解了以上信息,对 web 标准的关注可以了解一下 web 标准组织



  • ​​w3c​​: world wide web consortium

  • ​​ECMA​​: Ecma International

  • ​​WHATWG​​: Web Hypertext Application Technology Working Group

  • ​​IETF​​: Internet Engineering Task Force



想向技术大佬们多多取经?开发中遇到的问题何处探讨?如何获取金融科技海量资源?

恒生LIGHT云社区,由恒生电子搭建的金融科技专业社区平台,分享实用技术干货、资源数据、金融科技行业趋势,拥抱所有金融开发者。




推荐阅读
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
author-avatar
轻羽yy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有